home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d7 / jmodm308.arc / JMODEM_B.C < prev    next >
Text File  |  1991-01-02  |  4KB  |  80 lines

  1. /****************************************************************************/
  2. /*   FILE JMODEM_B.C                                                        */
  3. /*   Created 11-JAN-1990            Richard B. Johnson                      */
  4. /*                                  405 Brougton Drive                      */
  5. /*                                  Beverly, Massachusetts 01915            */
  6. /*                                  BBS (508) 922-3166                      */
  7. /*                                                                          */
  8. /*   allocate_memory();  (All memory allocation )                           */
  9. /*   get port();         (Parse, get ASCII port)                            */
  10. /*   get_inp();          (Parse, get filename)                              */
  11. /*   get_fun();          (Parse, get function S,R )                         */
  12. /*   get_prt();          (Convert ASCII port to numeric offset)             */
  13. /*                                                                          */
  14. /****************************************************************************/
  15. #include <stdio.h>                              /* Used for _puts();        */
  16. #if defined (TURBOC)
  17.     #include <alloc.h>
  18. #else
  19.     #include <malloc.h>                         /* Used for _malloc();      */
  20. #endif
  21. #include <string.h>                             /* Used for _strcpy(), etc  */
  22. #include "jmodem.h"                             /* JMODEM primatives        */
  23. /****************************************************************************/
  24. /*                          Allocate memory                                 */
  25. /****************************************************************************/
  26. byte *allocate_memory(word buf_len)
  27. {
  28.     register byte *memory;
  29.     if (!(memory = (byte *) malloc( buf_len )))
  30.         puts(malfail);
  31.     return memory;
  32. }
  33. /****************************************************************************/
  34. /*                            Get filename                                  */
  35. /****************************************************************************/
  36. byte *get_inp (word argc, register char *argv[])
  37. {
  38.     register char *name;                   /* Filename string pointer       */
  39.     if (argc > 2)                          /* Check command-line parameters */
  40.     {
  41.         name = argv[2];                    /* Copy the file name pointer    */
  42.         do
  43.         {                                  /* Cheap _toupper()              */
  44.             if ( ( *name <  0x7B )         /* Check upper limit             */
  45.               && ( *name >  0x60 ) )       /* Check lower limit             */
  46.                    *name &= 0x5F;          /* Map to upper case             */
  47.         } while (*(++name));               /* Until the NULL character      */
  48.     return argv[2];                        /* Return a pointer to the name  */
  49.     }
  50.     return (byte *) 0x0000;
  51. }
  52. /****************************************************************************/
  53. /*                          Get function  (S or R)                          */
  54. /****************************************************************************/
  55. byte get_fun(word argc, register char *argv[])
  56. {
  57.     if (argc > 2)                               /* Command-line parameters */
  58.     {
  59.         *argv[1] &= 0x5F;                        /* Map to upper case      */
  60.         if (*argv[1] == 'S' || *argv[1] == 'R')  /* Check valid parameters */
  61.             return *argv[1];                     /* Either 'R' or 'S'      */
  62.     }
  63.     return (byte) 0x00;                          /* Else NULL              */
  64. }
  65. /****************************************************************************/
  66. /*                      Get port ASCII number (1 - 4)                       */
  67. /****************************************************************************/
  68. word get_port(word argc, register char *argv[])
  69. {
  70.     if (argc > 2)                               /* Command-line parameters  */
  71.     {
  72.         if (*(++argv[1]) > '0' && *argv[1] < '5') /* Check for valid ports  */
  73.             return ((word)
  74.                     *argv[1] - '0');            /* Return binary port value */
  75.     }
  76.     return (word) 0x0000;
  77. }
  78. /****************************************************************************/
  79. /************************ E N D  O F   M O D U L E **************************/
  80.